The use of multiple antennas at the transmitter and/or the receiver of a wireless communication system can significantly boost the capacity and coverage of a wireless communication system. Such MIMO systems can exploit the spatial dimension of the communication channel. For example, several information-carrying signals can be sent in parallel using the transmit antennas and still be separated by signal processing at the receiver. By adapting the transmission to the current channel conditions, significant additional gains can be achieved. One form of adaptation is to dynamically, from one TTI to another, adjust the number of simultaneously transmitted information streams carrying signals to what the channel can support. This is commonly referred to as (transmission) rank adaptation. Precoding is another form of adaptation where the phases and amplitudes of the aforementioned signals are adjusted to better fit the current channel properties. The signals form a vector-valued signal and the adjustment can be thought of as multiplication by a precoder matrix. A common approach is to select the precoder matrix from a finite and indexed set, a so-called codebook. Such codebook-based precoding is an integral part of the LTE standard, as well as in many other wireless communication standards.
Codebook based precoding can be regarded as a form of channel quantization. A typical approach (c.f. LTE and MIMO HSDPA) is to let the receiver recommend a suitable precoder matrix to the transmitter by signaling the precoder matrix indicator (PMI) over a feedback link. To limit signaling overhead, it is generally important to keep the codebook size as small as possible if the feedback link has a limited capacity. This however needs to be balanced against the performance impact since with a larger codebook it is possible to better match the current channel conditions.
For example, in the LTE downlink, the user equipment (UE) reports the precoding matrix indicator (PMI) to the eNodeB either periodically on the physical uplink control channel (PUCCH) or aperiodic on the physical uplink shared channel (PUSCH). The former is a rather narrow bit pipe (e.g., using a few bits) where channel state information (CSI) feedback is reported in a semi-statically configured and periodic fashion. CSI feedback in this regard includes one or more channel quality indicators (CQIs), PMIs, and/or a transmission rank (e.g., indicating a number of transmission layers). On the other hand, reporting on PUSCH is dynamically triggered as part of the uplink grant. Thus, the eNodeB can schedule CSI transmissions in a dynamic fashion. In contrast to the PUCCH where the number of physical bits is currently limited to 20, the reports on PUSCH can be considerably larger. Thus, for feedback on PUCCH a small codebook size is desirable to keep the signaling overhead down. However, for feedback on PUSCH a larger codebook size is desirable to increase performance, since the capacity on the feedback channel is not as limited in this case.
The desired size of the codebook may also depend on the transmission scheme used. For example, a codebook used in multi-user multiple input multiple output (MU-MIMO) operation could benefit more from having a larger number of elements than a codebook used in single-user multiple input multiple output (SU-MIMO) operation. In the former case, a large spatial resolution is important to allow for sufficient UE separation.
A convenient way to support different codebook sizes is to use a large codebook with many elements by default and apply codebook subset restriction in the scenarios where a smaller codebook is beneficial. With codebook subset restriction, a subset of the precoders in the codebook is restricted so that the UE has a smaller set of possible precoders to choose from. This effectively reduces the size of the codebook implying that the search for the best PMI can be done on the smaller unrestricted set of precoders, thereby also reducing the UE computational requirements for this particular search.
Typically, the eNodeB would signal the codebook subset restriction to the UE by means of a bitmap in an a dedicated message part of the AntennaInfo information element (see the RRC specification, TS 36.331), one bit for each precoder in the codebook, where a 1 would indicate that the precoder is restricted (meaning that the UE is not allowed to choose and report said precoder). Thus, for a codebook with N elements, a bitmap of length N would be used to signal the codebook subset restriction. This allows for full flexibility for the eNodeB to restrict every possible subset of the codebook. There are thus 2N possible codebook subset restriction configurations.
For large antenna arrays with many antenna elements, the effective beams become narrow and a codebook containing many precoders is required for the intended coverage area. Furthermore, for two-dimensional antenna arrays, the codebook size increases quadratically since the precoders in the codebook need to span two dimensions, typically the horizontal and vertical domain. Thus, the codebook size (i.e. the total number of possible precoding matrices W) can be very large. Signaling a codebook subset restriction in the conventional way by means of a bitmap with one bit for every precoder can thus impose a large overhead, especially if the codebook subset restriction (CSR) is frequently updated or if there are many users served by the cell which each has to receive the CSR.